package coder.nav.model.vo.setting;

import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

@Data
public class NavIdeSettingVO implements Serializable {

    @ApiModelProperty("😶‍🌫️ 默认语言（Java, PHP, C++, Python, Golang, JavaScript）")
    @JSONField(ordinal = 1)
    private String defaultLang = "JavaScript";

    @ApiModelProperty("😶‍🌫️ 默认字体")
    @JSONField(ordinal = 2)
    private String defaultFont = "18px";

    @ApiModelProperty("😶‍🌫️ 默认主题（material, monokai, darcula, idea, mdn-like, duotone-light）")
    @JSONField(ordinal = 3)
    private String defaultTheme = "mdn-like";

    @ApiModelProperty("😶‍🌫️ 显示行数")
    @JSONField(ordinal = 4)
    private Boolean lineNumbers = true;

    @ApiModelProperty("😶‍🌫️ 缩进")
    @JSONField(ordinal = 5)
    private Boolean indentWithTabs = true;

    @ApiModelProperty("😶‍🌫️ 缩进单位")
    @JSONField(ordinal = 6)
    private Integer indentUnit = 4;

    @ApiModelProperty("😶‍🌫️ Tab大小")
    @JSONField(ordinal = 7)
    private Integer tabSize = 4;

    @ApiModelProperty("😶‍🌫️ 开启智能缩进")
    @JSONField(ordinal = 8)
    private Boolean smartIndent = true;

    @ApiModelProperty("😶‍🌫️ 当前行背景高亮")
    @JSONField(ordinal = 9)
    private Boolean styleActiveLine = true;

    @ApiModelProperty("😶‍🌫️ 括号匹配")
    @JSONField(ordinal = 10)
    private Boolean matchBrackets = true;

    @ApiModelProperty("😶‍🌫️ 自动换行")
    @JSONField(ordinal = 11)
    private Boolean lineWrapping = true;

    @ApiModelProperty("😶‍🌫️ 代码出错提醒")
    @JSONField(ordinal = 12)
    private Boolean lint = true;

    @ApiModelProperty("😶‍🌫️ 重新调整当前行缩进")
    @JSONField(ordinal = 13)
    private Boolean electricChars = true;

    @ApiModelProperty("😶‍🌫️ 代码高亮语言")
    @JSONField(ordinal = 14)
    private String mode = "javascript";

}
